<html>

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=Generator content="Microsoft Word 11 (filtered)">
<title>Introduction to MappedLexer</title>
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:SimSun;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:"Book Antiqua";
	panose-1:2 4 6 2 5 3 5 3 3 4;}
@font-face
	{font-family:"\@SimSun";
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:"Agfa Rotis Sans Serif";
	panose-1:0 0 4 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Book Antiqua";}
h1
	{margin-top:12.0pt;
	margin-right:0in;
	margin-bottom:3.0pt;
	margin-left:0in;
	page-break-after:avoid;
	font-size:14.0pt;
	font-family:"Book Antiqua";}
h2
	{margin-top:12.0pt;
	margin-right:0in;
	margin-bottom:3.0pt;
	margin-left:0in;
	page-break-after:avoid;
	font-size:12.0pt;
	font-family:"Book Antiqua";
	font-style:italic;}
h3
	{margin-top:12.0pt;
	margin-right:0in;
	margin-bottom:3.0pt;
	margin-left:0in;
	page-break-after:avoid;
	font-size:12.0pt;
	font-family:"Book Antiqua";
	font-weight:normal;}
p.MsoHeader, li.MsoHeader, div.MsoHeader
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Book Antiqua";}
p.MsoFooter, li.MsoFooter, div.MsoFooter
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Book Antiqua";}
p.ABLOCKPARA, li.ABLOCKPARA, div.ABLOCKPARA
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Book Antiqua";}
p.ABULLET, li.ABULLET, div.ABULLET
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:16.55pt;
	margin-bottom:.0001pt;
	text-indent:-16.55pt;
	font-size:11.0pt;
	font-family:"Book Antiqua";}
p.AINDENTEDBULLET, li.AINDENTEDBULLET, div.AINDENTEDBULLET
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:33.1pt;
	margin-bottom:.0001pt;
	text-indent:-16.55pt;
	font-size:11.0pt;
	font-family:"Book Antiqua";}
p.AINDENTEDPARA, li.AINDENTEDPARA, div.AINDENTEDPARA
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:16.55pt;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Book Antiqua";}
@page Section1
	{size:595.45pt 841.7pt;
	margin:1.0in .75in 1.0in .75in;}
div.Section1
	{page:Section1;}
-->
</style>

</head>

<body lang=EN-US>

<div class=Section1>

<p class=MsoNormal><span style='font-family:"Agfa Rotis Sans Serif"'>Introduction
to MappedLexer</span></p>

<p class=MsoNormal><span style='font-family:"Agfa Rotis Sans Serif"'>&nbsp;</span></p>

<p class=MsoNormal><span style='font-family:"Agfa Rotis Sans Serif"'>Brief</span></p>

<p class=MsoNormal><span style='font-family:"Agfa Rotis Sans Serif"'>MappedLexer
is a simple lexer capable to jump over or skip certain sequence of tokens from
the parsing stream, makes it ideal for building preprocessors for languages.</span></p>

<p class=MsoNormal><span style='font-family:"Agfa Rotis Sans Serif"'>&nbsp;</span></p>

<p class=MsoNormal><span style='font-family:"Agfa Rotis Sans Serif"'>Features</span></p>

<p class=MsoNormal><span style='font-family:"Agfa Rotis Sans Serif"'>Besides,
MappedLexer is easy to be extended. A specific type of token can be programmatically
defined by implementing interface Validator, which delivers the methods for
verification of characters, strings and other types.</span></p>

<p class=MsoNormal><span style='font-family:"Agfa Rotis Sans Serif"'>&nbsp;</span></p>

<p class=MsoNormal><span style='font-family:"Agfa Rotis Sans Serif"'>Motivation</span></p>

<p class=MsoNormal><span style='font-family:"Agfa Rotis Sans Serif"'>As a
sub-project of JasminCC, MappedLexer was designed to aid the building of a
preprocessor for JavaCC, a proven parser generator for Java programming
language. MappedLexer features functions on skipping tokens, makes the parser
can ignore some sort of grammar it dose not want to care about. This trick not
only makes the parsing process much faster, but also eliminates the need of the
underlying grammars.</span></p>

<p class=MsoNormal><span style='font-family:"Agfa Rotis Sans Serif"'>&nbsp;</span></p>

<p class=MsoNormal><span style='font-family:"Agfa Rotis Sans Serif"'>Example</span></p>

<p class=MsoNormal><span style='font-family:"Agfa Rotis Sans Serif"'>This
program prints the method names of a given Java source. Download here.</span></p>

<p class=MsoNormal><span style='font-family:"Agfa Rotis Sans Serif"'>&nbsp;</span></p>

<p class=MsoNormal><span style='font-family:"Agfa Rotis Sans Serif"'>&nbsp;</span></p>

</div>

</body>

</html>
